package Reflect.MyReflect001;

/**
 * ClassName:ReflectDome001
 * Package:Reflect
 * Description:
 *
 * @Author:ZhangXin
 * @Create:2023/3/8-19:46
 * @Version:v1.0
 */
public class ReflectDome {
    /*获取class对象的三种方式
     * 1.Class。forname(“全类名”)--->源代码阶段(Java文件/class文件)
     * 2.类名.clas--->加载阶段(内存)
     * 3.对象.getClass();--->运行阶段*/
    public static void main(String[] args) throws ClassNotFoundException {
        // 1.Class。forname(“全类名”)--->源代码阶段(Java文件/class文件)
        //全类名=包名+类名
        Class clazz1 = Class.forName("Reflect.MyReflect001.Student");
        System.out.println(clazz1);

        //2.类名.clas--->加载阶段(内存)
        //一般更多是当做参数进行传递
        Class clazz2 = Student.class;
        System.out.println(clazz1 == clazz2);

        //3.对象.getClass();--->运行阶段
        //当我们已经有了这个类的对象的时候,才可以使用
        Student s = new Student();
        Class clazz3 = s.getClass();
        System.out.println(clazz1 == clazz3);
        System.out.println(clazz2 == clazz3);
    }
}
